/*
 * Soga.h
 *
 *  Created on: 09/10/2013
 *      Author: juliansci
 */

#ifndef SOGA_H_
#define SOGA_H_

#include "Elemento.h"

class Soga: public Elemento {
private:
	Elemento* elementoInicial;
	Elemento* elementoFinal;
	int cantClicks;
	pair<double,double> inicioSoga;
	pair<double,double> finSoga;
public:
	Soga(double x, double y, double ancho, double alto, string pathImagen);
	virtual ~Soga();
	void mover(double centroX,double centroY);
	bool dejarEnCanvas(double x, double y);
	int seSuperpone(Elemento*);
	void superponer(Elemento*);
	void dibujar(double x, double y, double ancho, double alto,
				SDL_Renderer* renderer);
	bool agregaEnVacio();
	bool tieneVertices();
	void setPosicionInicial(double x, double y);
	void setPosicionFinal(double x, double y);
	virtual void jointearElemento(b2World* world);
	pair<Elemento*,Elemento*> obtenerExtremos();
	pair<double,double> getPosicionInicial();
	pair<double,double> getPosicionFinal();
	bool esBasico();
	void agregarSogaInicial(Elemento* soga);
	void agregarSogaFinal(Elemento* soga);
	void inicializarSogaDibujado(double xini, double yini, double xfin, double yfin);
	void eliminarReferencias(list<Elemento*>* elementosCanvas);
	bool sinReferencias();
};

#endif /* SOGA_H_ */
